// utils/uniTools.js

// 封装uni.showToast
export function showToast(options) {
  if (typeof options === 'string') {
    return uni.showToast({
      title: options,
      icon: 'none',
      duration: 2000,
    })
  }
  return uni.showToast({
    icon: 'none',
    duration: 2000,
    ...options,
  })
}

// 封装uni.showModal
export function showModal(options) {
  return new Promise((resolve) => {
    uni.showModal({
      ...options,
      complete: (res) => {
        resolve(res)
      },
    })
  })
}

// 封装uni.showLoading
export function showLoading(options) {
  if (typeof options === 'string') {
    return uni.showLoading({
      title: options,
      mask: true,
    })
  }
  return uni.showLoading({
    mask: true,
    ...options,
  })
}

// 封装uni.hideLoading
export function hideLoading() {
  uni.hideLoading()
}

/**
 * 整数金额格式化（千分位分隔）
 * @param {number|string} num - 待格式化的金额（数字或字符串）
 * @returns {string} 格式化后的金额
 */
export function formatMoney(num) {
	// 处理非数字情况
	if (isNaN(Number(num))) return '0';

	// 转换为整数并转为字符串
	const str = Math.abs(Number(num)).toString();
	let result = '';
	let count = 0;

	// 从后往前遍历，每3位加一个逗号
	for (let i = str.length - 1; i >= 0; i--) {
		count++;
		result = str[i] + result;
		// 每3位添加逗号（首位不加）
		if (count % 3 === 0 && i !== 0) {
			result = ',' + result;
		}
	}

	// 处理负数
	return Number(num) < 0 ? '-' + result : result;
}